This page last changed on Feb 08, 2011 by kgomes.

This is an example of the configuration of a RabbitMQ server on the machine ssds-ingest.

  1. In order to run RabbitMQ version 2.3.1, it required erlang14B. The default package for RHEL 5 is only at erlang 12B. So I had to add a fedora repository to yum that had a version higher than 12B for RabbitMQ. In order for yum (and pirut) to recognize the repo, I added a file to the /etc/yum.repos.d directory name epel-erlang.repo with the following contents:
    [epel-erlang]
    name=Erlang/OTP R14B
    baseurl=http://repos.fedorapeople.org/repos/peter/erlang/epel-5/x86_64/
    enabled=1
    skip_if_unavailable=1
    gpgcheck=0
    
    [epel-erlang-source]
    name=Erlang/OTP R14B - Source
    baseurl=http://repos.fedorapeople.org/repos/peter/erlang/epel-5/SRPMS
    enabled=0
    skip_if_unavailable=1
    gpgcheck=0
    
  2. You still need the EPEL repository, so I also added the epel.repo file with the following contents:
    [epel]
    name=Extra Packages for Enterprise Linux 5 - $basearch
    #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
    mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
    
    [epel-debuginfo]
    name=Extra Packages for Enterprise Linux 5 - $basearch - Debug
    #baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug
    mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
    gpgcheck=1
    
    [epel-source]
    name=Extra Packages for Enterprise Linux 5 - $basearch - Source
    #baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS
    mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
    gpgcheck=1
    
  3. Open up the Package Manager (Applications->Add/Remove Software)
  4. In the Search tab, enter erlang and select the 14B version of erlang. It will then install a bunch of dependencies (which is a good thing).
  5. Go to the rabbitmq download page and grab the RHEL version of the RPM
  6. Use RPM or yum localinstall to install the rabbitmq RPM.
  7. Once it is installed, it can be started using:
    /sbin/service rabbitmq-server start
    
  8. It can be setup to start as a service by using:
    chkconfig rabbitmq-server on
    
Management Plugins
  1. If you want the web management console, download the .ez files from the plugins page and install them in the /usr/lib/rabbitmq/lib/rabbitmq_server-2.3.1/plugins and restart the server.

    I found that while the core Rabbit server was somewhat immune to the version of Erlang, the plugins were not.

LDAP Authentication
  1. I was able to configure the RabbitMQ server to use our internal LDAP system in a chained configuration with the internal RabbitMQ authentication system. This allows you to use your MBARI logins on the RabbitMQ server.
    One VERY icky caveat

    Due to the way we have our Active Directory configured on site, the user DN's are in the form of Lastname, Firstname. While it works, that makes users have to login with a username like

    Gomes\\, Kevin
    

    It is ugly and hopefully we can address this in our Active Directory in the future. That said, the LDAP integration works well.

  2. Download the ldap-auth plugin and put in the /usr/lib/rabbitmq/lib/rabbitmq_server-2.3.1/plugins directory.
  3. Create (or add configuration) the /etc/rabbitmq/rabbitmq.config file with the following:
    [
      {rabbit, 
          [
            {auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]}
          ]
      },
      {rabbit_auth_backend_ldap,
          [ 
            {servers, ["ldap.shore.mbari.org"]}, 
            {user_dn_pattern, ["CN=${username},OU=Users,OU=AllUsers,DC=shore,DC=mbari,DC=org"]} 
          ]
      }
    ].
    
  4. Restart the server
  5. With the LDAP authentication working, you can now control access permissions on resources (vhosts, exchanges, bindings, queues). See the following for more details:
    1. RabbitMQ LDAP Authentication README
    2. RabbitMQ LDAP Authorization README
Document generated by Confluence on Feb 03, 2026 16:22